﻿/// <summary>
/// El código contenido en ese archivo contiene la declaración de los métodos de la clase parcial 
/// MasterPage2  encargados de realizar modificaciones en los datos de los usuarios registrados en el sistema 
///
/// Autor: Equipo 1
/// Versión 1.00, 22/04/2009
/// </summary>
/// 
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using NHibernate.Cfg;
using NHibernate;

    
    public partial class MasterPage2 : System.Web.UI.Page
    {

        ISession session; // Variable utilizada para capturar 
                          // la session de NHibernate que se encuentra activa
        Usuario _Usuario; // Variable utilizada para capturar los atributos del usuario
                          // que se desea modificar
        
        /// <summary>
        /// Page_Init
        /// Este método predefinido será utilizado para buscar el usuario que se desea 
        /// modificar e inilicializar los campos del formulario con los valores del
        /// registro a modificar
        /// </summary>
        ///
        /// <pre> 
        ///   Este metodo se ejecuta cuando se solicita la paguina aspx asociada a este 
        ///   archivo .cs
        /// </pre>
        ///
        /// <pos>
        ///   Una vez finalizado el método los campos del formulario deben haber sido 
        ///   inicializado con los valores del registro que se desea modificar
        /// </pos>

        protected void Page_Init(object sender, EventArgs e)
        {
            try
            {
                int _id = 1; //Asignacion del id
                session = NHibernateControl.GetCurrentSession();
                _Usuario = new Usuario();
                _Usuario = (Usuario)session.Load(typeof(Usuario), _id);
                UsuNombre.Text = _Usuario.Nombre;
                UsuApellido.Text = _Usuario.Apellido;
                UsuTipo.SelectedValue = _Usuario.Tipo;
                UsuEstatus.SelectedValue = _Usuario.Status.ToString();
                session.Flush();
                Response.Cookies["UsuId"].Value = _Usuario.Id.ToString();
            }
            catch (HibernateException excp)
            {
                Response.Redirect("MensajeModificarUsuarioError.aspx");
            }
        }

        /// <summary>
        /// modificarDatosUsuario
        /// Este método se encarga de tomar los valores presentes en los campos del formulario 
        /// y actualizar el registro con dichos valores
        /// 
        /// </summary>
        ///
        /// <pre> 
        ///   Se ejecuta cuando el usuario presiona el botón Procesar
        /// </pre>
        ///
        /// <pos>
        ///   Modifica los datos e informa al usuario del resultado de la operacion
        /// </pos>
        protected void modificarDatosUsuario(object sender, EventArgs e)
        {
            UsuarioControl _UsuarioControl;
            try
            {
                _UsuarioControl = new UsuarioControl();
                _UsuarioControl.modificarUsuario(_Usuario.Id, UsuNombre.Text, UsuApellido.Text,
                UsuTipo.SelectedValue, Int32.Parse(UsuEstatus.SelectedValue) );
                Response.Redirect("MensajeModificarUsuarioExito.aspx");
            }
            catch (HibernateException excp)
            {
                Response.Redirect("MensajeModificarUsuarioError.aspx");
            }
        }
    }


